//1.abstract修饰的方法为抽象方法
//2.abstract修饰的类为抽象类
//3.抽象类不可实例化
//4.抽象类可以定义为成员变量和成员方法
//5.当一个普通类继承了这个抽象类，那么需要重写这个抽血类当中的所有抽象方法
//6.抽象类的出现就是为了被继承
//7.抽象方法不能是private
//8.抽象方法不能被final和static修饰
//
//
abstract class Shape
{
    public abstract void draw();
}

class Rect extends Shape
{
    @Override
    public void draw() {
        System.out.println("矩形");
    }
}

class Cycle extends Shape
{
    @Override
    public void draw() {
        System.out.println("圆形");
    }
}
public class Abstract {
    public static void main(String[] args) {
        Shape s1 = new Rect();
        Shape s2 = new Cycle();
        s1.draw();
        s2.draw();
    }
}
